#ifndef _BSP_LED_H_
#define _BSP_LED_H_

#include "stm32f4xx_hal.h"

typedef enum
{
  LED0 = 0,
  LED1,
} E_LED;

typedef enum
{
  LED_ON = 0,
  LED_OFF,
  LED_TOGGLE,
} LED_STATUS;

#define LED0_RCC_CLK_ENABLE()     __HAL_RCC_GPIOF_CLK_ENABLE()
#define LED1_RCC_CLK_ENABLE()     __HAL_RCC_GPIOF_CLK_ENABLE()

#define LED0_Pin                  GPIO_PIN_9
#define LED0_GPIO_Port            GPIOF
#define LED1_Pin                  GPIO_PIN_10
#define LED1_GPIO_Port            GPIOF

#define LED0_ON                   HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, GPIO_PIN_RESET)
#define LED0_OFF                  HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, GPIO_PIN_SET)
#define LED0_TOGGLE               HAL_GPIO_TogglePin(LED0_GPIO_Port, LED0_Pin)

#define LED1_ON                   HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_RESET)
#define LED1_OFF                  HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, GPIO_PIN_SET)
#define LED1_TOGGLE               HAL_GPIO_TogglePin(LED1_GPIO_Port, LED1_Pin)

void LEDx_SetState(E_LED LEDx, LED_STATUS state);
#endif
